import { getStorage, setStorage } from './util'

/**
 * 标记授权 code 为已使用
 * 防止重复使用同一个 code
 */
export const markCodeAsUsed = () => {
	const storageCode = getStorage('signCode') || {}
	if (storageCode.code) {
		setStorage('signCode', { 
			code: storageCode.code, 
			used: true,
			usedAt: new Date().getTime()
		})
	}
}

/**
 * 检查 code 是否已使用
 */
export const isCodeUsed = (): boolean => {
	const storageCode = getStorage('signCode') || {}
	return storageCode.used === true
}

/**
 * 清除已使用的 code
 */
export const clearUsedCode = () => {
	const storageCode = getStorage('signCode') || {}
	if (storageCode.used) {
		setStorage('signCode', null)
	}
}

/**
 * 获取可用的 code（未使用的）
 */
export const getAvailableCode = (): string | null => {
	const storageCode = getStorage('signCode') || {}
	if (storageCode.code && !storageCode.used) {
		return storageCode.code
	}
	return null
}